import React, { Component } from 'react';  
  
class ErrorBoundary extends Component {  
  constructor(props) {  
    super(props);  
    this.state = { hasError: false };  
  }  
  
  static getDerivedStateFromError(error) {  
    // 更新 state 使下一次渲染能够展示降级后的 UI  
    return { hasError: true };  
  }  
  
  componentDidCatch(error, errorInfo) {  
    // 你可以将错误日志上报给服务器  
    console.error("捕获到错误: ", error, errorInfo);  
  }  
  
  render() {  
    if (this.state.hasError) {  
      // 你可以自定义降级后的 UI 并渲染  
      return <h1>发生错误</h1>;  
    }  
  
    return this.props.children;   
  }  
}  
  
export default ErrorBoundary;